package com.ethink.order.api.info;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 采购详情单 INFO实体
 *
 * @author default
 * @date 2022-11-10
 */
@Data
public class PurchaseOrderDetailInfo {

    @Schema(description ="主键")
    private Long id;

    @Schema(description ="采购单号")
    private String orderNo;

    @Schema(description ="采购详情单号")
    private String detailOrderNo;

    @Schema(description ="销售需求单号")
    private String saleDemandOrderNo;

    @Schema(description ="销售需求详情单号")
    private String saleDemandDetailOrderNo;

    @Schema(description ="枚举 订单状态:1-已提报(s1)|2-已中标(s2)|3-未中标(s3)")
    private Integer detailOrderStatus;

    @Schema(description ="商品编码")
    private String mateCode;

    @Schema(description ="商品名称")
    private String mateName;

    @Schema(description ="商品SKU")
    private String mateSku;

    @Schema(description ="商品规格")
    private String mateSkuName;

    @Schema(description ="大类编号")
    private String generaCode;

    @Schema(description ="大类编号名称")
    private String generaCodeName;

    @Schema(description ="中类编号")
    private String minorDefectsCode;

    @Schema(description ="中类编号名称")
    private String minorDefectsCodeName;

    @Schema(description ="小类编号")
    private String subclassCode;

    @Schema(description ="小类编号名称")
    private String subclassCodeName;

    @Schema(description ="商品分类")
    private String categoryName;

    @Schema(description ="品牌编码")
    private String brandCode;

    @Schema(description ="品牌名称")
    private String brandName;

    @Schema(description ="商品条码")
    private String internationCode;

    @Schema(description ="包装单位编码")
    private String unitCode;

    @Schema(description ="包装单位编码")
    private String unitName;

    @Schema(description ="商品规格")
    private String productSpecification;

    @Schema(description ="供应商编码")
    private String supplierCode;

    @Schema(description ="供应商名称")
    private String supplierName;

    @Schema(description ="枚举 付款方式:1-100%预付(t1)|2-先贷后款(t2)|3-分期付款(t3)")
    private Integer payType;

    @Schema(description ="采购报价")
    private BigDecimal purchasePrice;

    @Schema(description ="采购报价本币")
    private BigDecimal purchasePriceBb;

    @Schema(description ="报价货币编码")
    private String currencyCode;

    @Schema(description ="报价货币名称")
    private String currencyName;

    @Schema(description ="采购价有效期")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    private Date priceValidityPeriod;

    @Schema(description ="有效期")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    private Date validityPeriod;

    @Schema(description ="可供数量")
    private Integer availableQty;

    @Schema(description ="锁单数量")
    private Integer lockOrderQty;

    @Schema(description ="最终采购数量")
    private Integer purchaseQty;

    @Schema(description ="最终采购价")
    private BigDecimal finalPurchasePrice;

    @Schema(description ="交货方式")
    private String deliveryWay;

    @Schema(description ="交货地点")
    private String deliveryPlace;

    @Schema(description ="供应商预计交货时间")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd")
    private Date expectSupplierTime;

    @Schema(description ="制单人账号")
    private String createUserCode;

    @Schema(description ="制单人名称")
    private String createUserName;

    @Schema(description ="数据删除标志(0-正常,1-删除)")
    private Integer isDeleted;

    @Schema(description ="数据创建时间戳")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    @Schema(description ="数据更新时间戳")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    @Schema(description ="创建人")
    private String createUser;

    @Schema(description ="修改人")
    private String updateUser;

    @Schema(description ="备注信息")
    private String remark;

    @Schema(description = "是否锁定")
    private Boolean isLock;

}
